package com.zhentao.dto;

import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * 预测结果DTO
 * 用于封装ARIMA预测的结果数据
 */
@Data
public class PredictionResultDto {
    
    /**
     * 预测状态
     */
    private String status;
    
    /**
     * 预测消息
     */
    private String message;
    
    /**
     * 历史数据
     */
    private List<Double> historicalData;
    
    /**
     * 预测数据
     */
    private List<Double> predictions;
    
    /**
     * 预测周期数
     */
    private Integer forecastPeriods;
    
    /**
     * 预测指标
     */
    private Map<String, Object> metrics;
    
    /**
     * 分组维度值（用于分组预测）
     */
    private String dimensionValue;
    
    /**
     * 预测时间戳
     */
    private Long timestamp;
    
    /**
     * 格式化时间戳
     */
    private String formattedTimestamp;
    
    /**
     * 置信区间（可选）
     */
    private Map<String, List<Double>> confidenceIntervals;
    
    /**
     * 异常检测结果
     */
    private List<AnomalyDetectionResult> anomalies;
    
    /**
     * 异常检测结果内部类
     */
    @Data
    public static class AnomalyDetectionResult {
        /**
         * 异常类型
         */
        private String type;
        
        /**
         * 异常时间点
         */
        private Integer timeIndex;
        
        /**
         * 异常值
         */
        private Double value;
        
        /**
         * 异常程度（0-1，1表示最严重）
         */
        private Double severity;
        
        /**
         * 异常描述
         */
        private String description;
    }
} 

